#import <UIKit/UIKit.h>

#define MRCollectionViewLayoutAlignLeftTop			-1.f
#define MRCollectionViewLayoutAlignCenter			0.f
#define MRCollectionViewLayoutAlignRigthBottom		1.f

typedef NS_ENUM(NSUInteger, MRCollectionViewLayoutStyle) {
	MRCollectionViewLayoutStyleDefault,				//线性不等间距(由itemSpacing控制间距)
    MRCollectionViewLayoutStyleLinear,				//线性等间距(由itemSpacing控制间距)
    MRCollectionViewLayoutStyleCoverFlow,
};

#pragma mark - 布局
@interface MRCollectionViewLayout : UICollectionViewLayout
{
	NSArray		*_updateItems;
}

+ (instancetype)layoutWithStyle:(MRCollectionViewLayoutStyle)style;
- (instancetype)initWithStyle:(MRCollectionViewLayoutStyle)style;

@property (nonatomic) MRCollectionViewLayoutStyle		style;
@property (nonatomic) UICollectionViewScrollDirection	scrollDirection;	//布局滚动方向

@property (nonatomic) NSInteger		visibleCount;		//可见单元格数，最合适的数量有助于提高性能（默认0 全部）
@property (nonatomic) CGFloat		centerOffset;		//单元格中心偏移百分比(非滚动方向)（默认0.5 居中）

@property (nonatomic) CGSize		itemSize;			//单元格大小
@property (nonatomic) CGFloat		itemSpacing;		//单元格间距（默认0）

@property (nonatomic) CGFloat		itemControl;		//缩放及透明度受控单元格数 (默认1 中间外单元格将使用最小缩放及透明度) 最小必须大于0
@property (nonatomic) CGFloat		itemAlpha;			//单元格最小透明度 (默认1 不透明)

//仅用于 MRCollectionViewLayoutStyleLinear/Default
@property (nonatomic) CGFloat		itemAlign;			//单元格滚动方向对齐 [-1 ~ 0 ~ +1] 0居中 -1左上对齐 +1 右下对齐
@property (nonatomic) CGFloat		itemScale;			//单元格最小缩放 (默认1 不缩放)

//仅用于 MRCollectionViewLayoutStyleCoverFlow
@property (nonatomic) CGFloat		itemDistance;		//CoverFlow景深 (默认300)

@end
